package com.gopay.remote.cps.fund;


import com.gopay.common.domain.fund.FundGopayFileEntity;

import java.sql.SQLException;
import java.util.List;

/**
 * 基金文件远程服务接口
 * @FundFileRemoteService.java
 * @author dong-wang5@hnari.com
 * @2016年7月15日 上午11:11:01  www.gopay.com.cn Inc.All rights reserved.
 */
public interface FundFileRemoteService {

    /**
     *发送文件上传通知
     */
    @Deprecated
    String sendFileUploadNotify(FundGopayFileEntity file);

    /**
     *国付宝提供给基金公司的申购认购对账文件  T日15:20前生成   文件名称为T日 (数据来源为：结算时间为T+1的所有的申购认购订单)  包含支付成功和失败的
     */
    @Deprecated
    String fundAllocationCheckFileFirst(String settleDay,boolean reGeneration,List<String> merchantIds);

    /**
     *国付宝提供给基金公司的申购认购对账文件  T日17:00前生成   文件名称为T日 (数据来源为：结算时间为T+1的所有的申购认购订单)  包含支付成功和失败的
     */
    @Deprecated
    String fundAllocationCheckFile(String settleDay,boolean reGeneration,List<String> merchantIds,boolean isLast);

    /**
     * 国付宝提供给监管行的资金调拨文件（1文件）  T日18:30前生成   文件名称为T日 (数据来源为：结算时间为T+1的支付完成的申购认购订单)
     * settleDay:结算日期
     */
    @Deprecated
    String superviseAllocationFile(String settleDay, boolean reGeneration,List<String> merchantIds);

    /**
     * 国付宝提供给监管行的理财转基金文件（28文件）  T+1日10：00前生成   文件名称为T日 (数据来源为：结算时间为T+1的支付完成的申购认购订单)
     * * settleDay:结算日期
     */
    @Deprecated
    String superviseTransferFile(String settleDay, boolean reGeneration,List<String> merchantIds);

    /**
     * 国付宝提供给监管行的撤单文件（9文件）  T+1日10：00前生成   文件名称为T日 (数据来源为：空)
     * * settleDay:结算日期
     */
    @Deprecated
    String superviseCancleFile(String settleDay, boolean reGeneration,List<String> merchantIds);

    /**
     * 绑卡文件生成 (8)    T日15:00后生成  文件名为T日  传入参数T日 merchantId为null
     */
    @Deprecated
    String superviseBindCardFile(String settleDay, boolean reGeneration,List<String> merchantIds);

    /**
     * 监管行通知国付宝赎回分红文件  0文件落地     待定 传入参数T日
     *
     */
    @Deprecated
    String superviseRedeemFile(String settleDay, boolean reGeneration,List<String> merchantIds);

    /**
     * 国付宝提供赎回分红结果文件给监管行   3文件  文件名称为T+1日 数据来源(基金公司T+1日12点前采集的T-1 15:00 -- T日15:00的时间)
     * 传入参数T日
     */
    @Deprecated
    String superviseRedeemResultFile(String settleDay, boolean reGeneration,List<String> merchantIds);


    /**
     * 国付宝提供监管行基金转国付宝文件  27文件  T+1日12点前生成  (T-1日 15:00 ---T日 15:00)数据 文件名称T+1
     * 传入参数 T日
     */
    @Deprecated
    String superviseWithdrawFile(String settleDay, boolean reGeneration,List<String> merchantIds);

    /**
     * 签约文件生成 (7)    T日15:00后生成  文件名为T日  传入参数T日
     */
    @Deprecated
    String superviseAgreementFile(String settleDay, boolean reGeneration,List<String> merchantIds);

    /**
     * 赎回分红退款结果对账文件
     * @param settleDay
     * @param reGeneration
     * @param merchantIds
     * @return
     */
    @Deprecated
    String redeemPayCheck(String settleDay, boolean reGeneration, List<String> merchantIds);

    /**
     * 基金转国付宝对账完成通知后备付金---->赎回分红退款账户
     * @return
     */
    @Deprecated
    String transferMoney(String settleDay, boolean reGeneration, List<String> merchantIds) throws SQLException;

}
